\newpage
\section{RGL : Animations}
\subsection{Fonctionnement}
Les animations en RGL sont gérées par la fonction \textit{play3d}.
Cette fonction prend en paramètres plusieurs éléments, notament la 
durée de l'animation en secondes et une fonction qui retourne une liste
de toutes les actions à effectuer sur la scène entre deux frames. Un 
paramètre permet aussi de fixer le nombre de FPS de l'animation.
\paragraph{}
Voici un exemple d'animation : 
\begin{lstlisting}
open3d()
plot3d( cube3d(col="green") )
M <- par3d("userMatrix")
play3d( par3dinterp( userMatrix=list(M,
	rotate3d(M, pi/2, 1, 0, 0),
    rotate3d(M, pi/2, 0, 1, 0) ) ), 
    duration=4 )
\end{lstlisting}

\paragraph{}
Ici, on va afficher un cube vert et le faire tourner sur les axes x et y 
pendant 4 secondes. La fonction \textit{par3d} permet de conserver un ensemble
de paramètres graphiques qui seront appliqués sur chaque frames de la fenêtre.

\paragraph{}
 Enfin, la fonction \textit{par3dinterp} va calculer une interpolation entre
chaque frames générées afin d'avoir une animation fluide. \textit{userMatrix} est une liste
qui contient toutes les transformations à effectuer sur la scène entre chaque frames.
\paragraph{}
Si le paramètre \textit{duration} n'est pas spécifé, alors l'animation est infinie
et peut être stopée par un appui sur la touche echap. Il existe aussi une fonction \textit{movie3d}
qui permet de stocker l'animation dans un fichier vidéo ou dans un gif animé.

\subsection{Soucis rencontrés}
\paragraph{}
Le principal soucis concernant la fonction \textit{play3d} est qu'elle est bloquante. Tant que l'animation est en cours, le système R est inutilisable. De plus des soucis d'interaction avec Ubuntu font que l'appui sur la touche echap ne clos pas l'animation.